-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stop ngening compat-only DLLs in subfolders #11181
base: main
Are you sure you want to change the base?
Conversation
These DLLs are shipped to these subfolders only for compat with applications that load from them naïvely; MSBuild.exe and VS and applications that use MSBuildLocator should only ever load them from the `bin\` directory directly. So stop spending time ngening them.
Hello @rainersigwald, I noticed that you’re changing an .swr file or any file under src/Package/MSBuild.VSSetup.. Please make sure to validate this change by an experimental VS insertion. This is accomplished by pushing to an exp/* branch, which requires write permissions to this repo. |
Experimental insertion results on this one are weirder: https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/599728. Specifically there seems to be a consistent regression that filtering that metric with "show identical" shows that in both cases it's loading And looking at the ngen64 logs (baseline on the bottom): ❯ rg 'install ".*Microsoft\.IO\.Redist\.dll\"'
ec07b127fa38ea2503e95b117bca1117\TestExecutionOutputs\ManagedLangsVS64.AddNewProject\Warmup-1-20250109-215559_dtl-bienvy1e\NGenLogs\Framework64\ngen.log
1412:01/09/2025 21:07:23.011 [8236]: Executing command from offline queue: install "C:\VisualStudio\MSBuild\Current\Bin\Microsoft.IO.Redist.dll" /NoDependencies /ExeConfig:"C:\VisualStudio\Common7\IDE\vsn.exe" /queue:1
1423:01/09/2025 21:07:23.065 [8236]: Executing command from offline queue: install "C:\VisualStudio\MSBuild\Current\Bin\Microsoft.IO.Redist.dll" /NoDependencies /ExeConfig:"C:\VisualStudio\MSBuild\Current\Bin\MSBuild.exe" /queue:1
1857:01/09/2025 21:07:24.059 [8236]: Executing command from offline queue: install "C:\VisualStudio\Common7\IDE\PublicAssemblies\Microsoft.IO.Redist.dll" /NoDependencies /ExeConfig:"C:\VisualStudio\Common7\IDE\vsn.exe" /queue:3
ccaff841d82a52d8d1308341cd65e0a7\TestExecutionOutputs\ManagedLangsVS64.AddNewProject\Warmup-1-20250109-052236_dtl-juijkiyh\NGenLogs\Framework64\ngen.log
1536:01/09/2025 04:35:42.045 [3496]: Executing command from offline queue: install "C:\VisualStudio\MSBuild\Current\Bin\Microsoft.IO.Redist.dll" /NoDependencies /ExeConfig:"C:\VisualStudio\Common7\IDE\vsn.exe" /queue:1
1593:01/09/2025 04:35:42.303 [3496]: Executing command from offline queue: install "C:\VisualStudio\MSBuild\Current\Bin\Microsoft.IO.Redist.dll" /NoDependencies /ExeConfig:"C:\VisualStudio\MSBuild\Current\Bin\MSBuild.exe" /queue:1
1761:01/09/2025 04:35:42.714 [3496]: Executing command from offline queue: install "C:\VisualStudio\MSBuild\Current\Bin\amd64\Microsoft.IO.Redist.dll" /NoDependencies /ExeConfig:"C:\VisualStudio\Common7\IDE\vsn.exe" /queue:3
1855:01/09/2025 04:35:42.867 [3496]: Executing command from offline queue: install "C:\VisualStudio\Common7\IDE\PublicAssemblies\Microsoft.IO.Redist.dll" /NoDependencies /ExeConfig:"C:\VisualStudio\Common7\IDE\vsn.exe" /queue:3 So . . . it's redundantly ngened still. |
Remaining redundancy from that log addressed by #11256. |
It caused confusing problems that we should chase down, but not necessarily right now.
PerfDDRITs are unhappy with this because of an additional image load of Microsoft.IO.Redist, which I traced to being becaue of this fusion logging:
Off the machine I don't think I can see the It's not clear to me whether this is related to THIS pr (can't see how since I didn't touch IO.Redist) or to #11256. Results from insertion including that other one should help: https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/605480 |
These DLLs are shipped to these subfolders only for compat with applications that load from them naïvely; MSBuild.exe and VS and applications that use MSBuildLocator should only ever load them from the
bin\
directory directly. So stop spending time ngening them.Notes to January self: look at ngen logs in VS perf tests. Verify